// ps:代码参考官解:中心扩展
package main

func main() {
	palindrome := longestPalindrome("cbbd")
	println(palindrome)
}

func longestPalindrome(s string) string {
	res := ""
	for i := 0; i < len(s); i++ {
		// 封装成函数的写法让代码简洁，可读性也比较强
		s1 := expandAroundCenter(s, i, i)
		s2 := expandAroundCenter(s, i, i+1)
		if len(s1) > len(res) {
			res = s1
		}
		if len(s2) > len(res) {
			res = s2
		}
	}
	return res
}

func expandAroundCenter(s string, l, r int) string {
	// 双指针遍历的写法
	for l >= 0 && r < len(s) && s[l] == s[r] {
		l--
		r++
	}
	return s[l+1 : r]
}
